Плохо! Плохо!:  0
Показано с 1 по 5 из 5

Тема: [VX Ace] Как увеличить скорость вывода текста на экран?

  1. #1
    Маститый Аватар для Antberg
    Информация о пользователе
    Регистрация
    14.04.2008
    Сообщений
    1,351
    Записей в дневнике
    3
    Репутация: 52 Добавить или отнять репутацию

    По умолчанию [VX Ace] Как увеличить скорость вывода текста на экран?

    Давно обратил внимание, что текст на новых мэйкерах (позже 2000/2003) стал выводиться на экран слишком медленно. Его, конечно, можно "промотать" повторным нажатием кнопки, но всё-же... Существует ли способ увеличить скорость печатания текста в диалогах? В базовых скриптах я такого не находил. Возможно, специальный скрипт для этого существует? Нужно для VX Ace, но может пригодиться и для MV.

  2. #2

    По умолчанию

    можно сделать так, чтоб весь текст появлялся сразу Window_Message в clear_flags @show_fast = false поменять на true (45 строчка)

  3. #3
    Маститый Аватар для Antberg
    Информация о пользователе
    Регистрация
    14.04.2008
    Сообщений
    1,351
    Записей в дневнике
    3
    Репутация: 52 Добавить или отнять репутацию

    По умолчанию

    Понятно. Но у меня такой задачи не стоит. Нужно, чтобы текст выводился именно побуквенно, но скорость вывода была выше стандартной. Так что же, выходит, нельзя так сделать? У меня даже закралось подозрение, что что-то вроде предельного количества кадров в секунду не даёт сделать более быстрый вывод текста...

    P.S.: К слову, мгновенный вывод ещё можно сделать через тег "\>" в начале строки сообщения. То есть, часть блока можно вывести побуквенно, а часть мгновенно. Или внутри строки часть текста можно вывести мгновенно, замкнув её по типу "\>текст-текст-текст\<".
    Последний раз редактировалось Antberg; 24.11.2023 в 07:56.

  4. #4

    По умолчанию

    там есть пункты вроде wait_for_one_character если их комментить и ставить ожидание wait(1) получается тож самое, то есть скорость там и так на минимуме стоит по умолчанию, а про фпс сам не догадался, попробовал работает, перед сообщением ставить Graphics.frame_rate = 120 после него возвращать Graphics.frame_rate = 60, но так вся игра ускоряется, анимации, перемещение, время игры, если в момент чтения на экране ничего не двигается этот метод подойдёт.

  5. #5
    Маститый Аватар для Antberg
    Информация о пользователе
    Регистрация
    14.04.2008
    Сообщений
    1,351
    Записей в дневнике
    3
    Репутация: 52 Добавить или отнять репутацию

    По умолчанию

    Во, нашёл!
    https://forums.rpgmakerweb.com/index...-speed.127033/
    Текст действительно заметно ускоряется.

    На всякий случай, репостну сюда.

    PHP код:
    =begin
    ===============================================================================
    Text Speed
    Change text speed by Zero_G v1.1
    Version
    RGSS3
    ===============================================================================
    == 
    Description ==
    This script will allow you to change the speed the text is displayed.
    Text can be slowed downspeed up or to displayed instantly.

    == 
    Terms of Use ==
    Free for use in non-commercial projects.
    Free for use in commercial projects.
    Please provide credits to Zero_G.

    == 
    Credits ==
    No one.

    == 
    Usage ==
    Just add the plugin before main.

    == 
    Changelog ==
    v1.1 Fix for the window message reopening after each message.
    --------------------------------------------------------------------------------
    =
    end
    module ZERO
        
    # Speed of text, values -1, 0 and 1 for default speed
        # 2 for double speed, 3 triple speed, ...
        # -2 for half speed, -3 for 1/3 speed, ...
        
    TEXT_SPEED 2
      
        
    # Display text instantly, will ignore text speed
        # Set to false for default, true for instant text
        
    INSTANT_SPEED false
    end

    class Window_Message Window_Base
      
    # Overwrite update_fiber
      # Faster text
      
    def update_fiber
        
    if @fiber
          
    @fiber.resume
          
    for i in 2..ZERO::TEXT_SPEED
              
    @fiber.resume unless @fiber.nil?
          
    end
        elsif $game_message
    .busy? && !$game_message.scroll_mode
          
    @fiber Fiber.new { fiber_main }
          @
    fiber.resume
        
    else
          
    $game_message.visible false
        end
      end

      
    # Overwrite fiber_main
      # Faster text
      
    def fiber_main
        $game_message
    .visible true
        update_background
        update_placement
        loop 
    do
          
    process_all_text if $game_message.has_text?
          
    process_input
          $game_message
    .clear
          
    @gold_window.close
          Fiber
    .yield
          for 
    i in 2..ZERO::TEXT_SPEED # Balance the fiber resumes
              
    Fiber.yield
          
    end
          
    break unless text_continue?
        
    end
        close_and_wait
        $game_message
    .visible false
        
    @fiber nil
      end

      
    # Alias wait_for_one_character
      # Slower text
      
    alias zero_wait_for_one_character wait_for_one_character
      def wait_for_one_character
        zero_wait_for_one_character
        
    for i in ZERO::TEXT_SPEED..-2
            Fiber
    .yield unless @show_fast || @line_show_fast
         end
      end

      
    # Overwrite update_show_fast
      # Instant text
      
    if ZERO::INSTANT_SPEED
          def update_show_fast
            
    @show_fast true
          end
        end
    end 
    # class Window_Message 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
[VX Ace] Как увеличить скорость вывода текста на экран?